package joc.customize;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * This annotation is used for contracts that cover behaviors. A call to this
 * method will be inserted in the end of each method specifying the contract
 * annotation.<br/>
 * A contract method using this annotation is expected to have exactly 1
 * parameter:
 * <ol>
 * <li>The annotation for this contract</li>
 * </ol>
 * The contract method is expected to return a value of the primitive type
 * boolean. The contract method should return true if the contract is fulfilled,
 * and false if the contract is broken.
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
public @interface ForBehaviorEvaluateAtEndOfBehavior {

}
